// src/client/client.h
#ifndef CLIENT_H
#define CLIENT_H

#include <string>
#include <pthread.h>
#include "message_queue.h"

class ChatClient {
private:
    int socket_fd;
    std::string server_ip;
    int server_port;
    std::string username;
    bool running;
    MessageQueue messageQueue;
    pthread_t receive_thread;
    pthread_t send_thread;

public:
    ChatClient(const std::string& server_ip, int server_port);
    ~ChatClient();
    
    bool connect_to_server(); // 连接到服务器
    void disconnect();        // 断开连接
    void start();             // 启动客户端
    void stop();              // 停止客户端
    
    void send_message(const std::string& message); // 发送消息
    void receive_messages(); // 接收消息
    void process_messages(); // 处理消息
    
    static void* receive_thread_func(void* arg); // 接收线程函数
    static void* send_thread_func(void* arg);    // 发送线程函数
};

#endif // CLIENT_H    